package com.chaos.system.data;

import com.chaos.framework.model.data.DATA;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper =false)
@Accessors(chain = true)
@ApiModel(value="Oauth2AuthorizationData", description="")
public class Oauth2AuthorizationData extends DATA{

        private String registeredClientId;

        private String principalName;

        private String authorizationGrantType;

        private String authorizedScopes;

        private byte[] attributes;

        private String state;

        private byte[] authorizationCodeValue;

        private LocalDateTime authorizationCodeIssuedAt;

        private LocalDateTime authorizationCodeExpiresAt;

        private byte[] authorizationCodeMetadata;

        private byte[] accessTokenValue;

        private LocalDateTime accessTokenIssuedAt;

        private LocalDateTime accessTokenExpiresAt;

        private byte[] accessTokenMetadata;

        private String accessTokenType;

        private String accessTokenScopes;

        private byte[] oidcIdTokenValue;

        private LocalDateTime oidcIdTokenIssuedAt;

        private LocalDateTime oidcIdTokenExpiresAt;

        private byte[] oidcIdTokenMetadata;

        private byte[] refreshTokenValue;

        private LocalDateTime refreshTokenIssuedAt;

        private LocalDateTime refreshTokenExpiresAt;

        private byte[] refreshTokenMetadata;

        private byte[] userCodeValue;

        private LocalDateTime userCodeIssuedAt;

        private LocalDateTime userCodeExpiresAt;

        private byte[] userCodeMetadata;

        private byte[] deviceCodeValue;

        private LocalDateTime deviceCodeIssuedAt;

        private LocalDateTime deviceCodeExpiresAt;

        private byte[] deviceCodeMetadata;


}
